package com.powernode.commons.util;

import java.sql.*;
import java.util.ResourceBundle;

/**
 * @Author Arrebol
 * @Date 2024/8/1 14:45
 * @Project jdbc
 * @Description：
 * jdbc工具类
 */
public class DbUtils {

    private static final String DRIVER;
    private static final String URL;
    private static final String USER;
    private static final String PASSWORD;

    static{
        ResourceBundle bundle=ResourceBundle.getBundle("jdbc");
        DRIVER =bundle.getString("driver");
        URL =bundle.getString("url");
        USER =bundle.getString("user");
        PASSWORD =bundle.getString("password");
        try {
            Class.forName(DRIVER);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }


    /**
     * 工具类中的构造方法是私有化的
     */
    private DbUtils(){}

    /**
     * 获取连接对象
     * @return              连接对象
     * @throws SQLException 抛出异常，在调用此方法的时候捕获异常
     */
    public static Connection getConnection() throws SQLException {
        //实际上这里每次调用getConnection方法时都会获取一个全新的数据库连接对象
        //这种效率是比较低的，可以使用数据库连接池进行改造
        return DriverManager.getConnection(URL, USER, PASSWORD);
    }

    /**
     * 释放资源
     * @param rs   查询结果集
     * @param stmt  数据库操作对象
     * @param conn  数据库连接对象
     */
    public static void close(ResultSet rs, Statement stmt,Connection conn){
        if(rs==null){
            ReleaseResourceUtils.release(stmt,conn);
        }else{
            ReleaseResourceUtils.release(rs,stmt,conn);
        }
    }
}
